

#pragma once
#include "Enemy.h"
class MotherBrain :
	public Enemy
{
public:
	//Trilogy
	MotherBrain(float posX = -1, float posY = -1);
	~MotherBrain() = default;
	MotherBrain(const MotherBrain&) = default; 
	MotherBrain& operator =(const MotherBrain&) = default; 

	//Type
	int GetType() const { return ENT_MOTHERBRAIN; }

	//Interface
	void Update(float dt);
	void Render();
	void HandleCollision(const IEntity* pOther);
	void HandleEvent();
	SGD::Rectangle GetRect() const;
	void ModifyHealth(float hpAmount);
	void ApplyFriction(float dt);

	//Enemy Interface
	void Attack(float dt);
	void Move(void);

	//MotherBrain specific
	void Spawn(); 

	//Accessors
	float GetSpawnTimer(void) { return m_fSpawnTimer; }
	float GetNumSpawners(void) { return m_fNumSpawners; }
	float GetSpawnCDL(void)		{ return m_fSpawnCDL; }

	//Mutators
	void SetSpawnTimer(float st) { m_fSpawnTimer = st; }
	void SetNumSpawners(float ns) { m_fNumSpawners = ns; }
	void SetSpawnCDL(float sCDL) { m_fSpawnCDL = sCDL; }

private:
	float m_fSpawnTimer = 0.0f;
	float m_fNumSpawners = 0.0f; 
	float m_fSpawnCDL = 0.0f; 
};

